#pragma once

#include <memory>
#include "Containers/Containers.h"

#include "ScriptCompiler/AST/ExpressionNode.h"

class CAssignNode : public CExpressionNode
{
public:
    CAssignNode(std::weak_ptr<CScriptFileContext> InFile)
        : CExpressionNode(InFile,EASTNodeType::Assign)
    {
    }

    std::shared_ptr<CScriptToken> Operator;

    std::shared_ptr<CExpressionNode> LeftOperand;
    std::shared_ptr<CExpressionNode> RightOperand;

    virtual void DebugPrint(int32_t InDepth) override;

    virtual std::shared_ptr<CScriptToken> GetFirstToken() override;

};